/**
 *
 * 版权所有 © cybersky.com
 *
 */
package cn.cybertron.primus.report.entity;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.List;

import cn.cybertron.primus.base.ChartType;

/**
 * 报表统计图描述类
 * @author ch
 *
 */
public class ReportChart implements Serializable {

	private static final long serialVersionUID = -1881283337603563722L;

	/**
	 * 统计图类型，从界面获取
	 */
	protected ChartType chartType;

	/**
	 * 统计图标题，从界面获取，如果为null，则统计图标题使用系统内置
	 */
	protected String chartTitle;
	
	/**
	 * 分组字段，存放中间表真实字段名，用于接收界面上的设置。
	 * size>=1，但只有前两个字段有效。当size>=2时，统计字段只用第一个。
	 * 对于趋势图（时间序列图），第一个字段为时间字段，第二个字段为分组字段，可有可无；
	 * 如果设置了分组字段同时又在分组字段上设置了等于条件，相当于没有分组字段，此时不要将分组字段加进来
	 */
	protected List<String> groupNames;
	
	/**
	 * 统计字段，用于接收界面上的设置。key为中间表真实字段名，value为集合函数名
	 */
	protected LinkedHashMap<String, String> serieInfo;
	
	/**
	 * 统计top n，为0表示统计全部，从界面获取
	 */
	protected int topN;
	
	/**
	 * 统计图（非时间序列图），按照统计字段值大小排序
	 */
	protected String chartAsc;

	public ReportChart() {
		
	}
	
	public ReportChart(ChartType chartType) {
		this.chartType = chartType;
	}

	public ChartType getChartType() {
		return chartType;
	}

	public void setChartType(ChartType chartType) {
		this.chartType = chartType;
	}

	public String getChartTitle() {
		return chartTitle;
	}

	public void setChartTitle(String chartTitle) {
		this.chartTitle = chartTitle;
	}

	public List<String> getGroupNames() {
		return groupNames;
	}

	public void setGroupNames(List<String> groupNames) {
		this.groupNames = groupNames;
	}

	public LinkedHashMap<String, String> getSerieInfo() {
		return serieInfo;
	}

	public void setSerieInfo(LinkedHashMap<String, String> serieInfo) {
		this.serieInfo = serieInfo;
	}

	public int getTopN() {
		return topN;
	}

	public void setTopN(int topN) {
		this.topN = topN;
	}

	public String getChartAsc() {
		return chartAsc;
	}

	public void setChartAsc(String chartAsc) {
		this.chartAsc = chartAsc;
	}
	
}
